<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        数据库内部的增删改查

        学生信息管理的数据库

        系统登录：用户名密码    用户信息表
        每个学生都有自己的个人信息：  
        学号、姓名、班级、头像、爱好、性别、籍贯、年龄、手机号、父母点好、紧急联系人、紧急联系人电话、备注
        成绩：
        入学成绩   学号 姓名  语文 数学 英语 理综 文综 综合成绩 平均成绩
        期中成绩  学号 姓名  语文 数学 英语 理综 文综 综合成绩 平均成绩
        期末成绩  学号 姓名  语文 数学 英语 理综 文综 综合成绩 平均成绩

        一定要以唯一的字段为准



        数据库整个项目的数据
        集合（collection）  分类管理数据和信息
        文档（document） 一条条的数据就是文档 是数据库中的最小单位 操作的就是文档


        数据库操作命令
        1. show dbs或者show databases 显示所有的数据库
        注：local数据库 自带的 包含一些个人信息 不建议修改

        2.use 数据库名字 切换到指定数据库
        3.插入一条数据
        先去查看是否在当前数据库下，如果是，直接插入数据 db.集合名.insertOne({})插入一条数据
        如果不是 切换到当前数据库下（use 数据库名），插入数据 db.集合名.insertOne({})插入一条数据

        插入多条数据 db.集合名.inserMany([{},{},{},{}])  插入多条数据

        给数据库中添加集合，如果没有，直接插入数据，自动生成相关集合
        4. 查看数据库中的集合  
        show collections
        5. 删除当前数据库
        db.dropDatabase()
        6.删除当前集合
        db.collection.drop()

        7. 查
        db.集合名.find() 查找到当前集合的所有文档
        db.集合名.find({name:'tom'}) 查找当前集合中name为tom的数据

        db.集合名.find({age:{$gt:18}}) 大于18
        db.集合名.find({age:{$gte:18}}) 大于等于18

        db.集合名.find({age:{$lt:18}}) 小于18
        db.集合名.find({age:{$lte:18}}) 小于等于18

        db.集合名.find({age:{$eq:18}}) 等于18

        db.集合名.find({age:{$in:[18,20]}}) 18或者20
        db.集合名.find({$or:[{age:18},{age:20}]}) 18或者20

        可以使用正则表达式进行查询
        db.集合名.find({name:/^j/}) 姓名以j开头的

        可以使用函数 $where后面
        db.集合名.find({$where:function(){return this.name == 'jack' && this.age == 15}})
        this指向当前的文档对象

        非 $nin
        db.集合名.find({name:{$nin:['jack']}}) name名称为非jack的数据

        投影：过滤不想要的数据 保留想要的数据
        db.集合名.find({name:'liming'},{name:1,age:1})  想要哪个字段，哪个字段为1 不写默认是不想要  但是_id比较特殊，必须手动去除
        db.集合名.find({name:'liming'},{hobby:0}) 不想要哪个字段，哪个字段为0，不写默认是想要

        db.集合名.findOne() 查找一条之后就不在进行查找

        改 （更新）
        db.集合名.update({name:'tom'},{$set:{age:22}})  更新指定字段， 更新tom的age字段，其他字段不变

        db.集合名.update({name:'jack'},{$set:{age:27}},{multi:true}) 更新多条文档 查找到多少条文档更新多少条文档

        db.集合名.update({age:{$gte:20}},{$inc:{age:1}}) 查找到指定文档，给指定字段加1
        db.stuinfos.update({age:{$gte:20}},{$inc:{age:1}},{multi:true})  给查找到的每一个文档的指定字段加1 

        db.集合名.updateOne() 只更新一条
        db.集合名.updateMany()更新多条

        删除
         db.集合名.remove(查询条件) 
        db.集合名.remove({name:'jack'}) 删除集合中name为jack的文档
        db.stuinfos.remove({}) 把集合中的所有数据都删除


        Mongoose对象文档模型库
     -->
</body>
</html>